home *** CD-ROM | disk | FTP | other *** search
/ Acorn RISC PD-CD 1 / Acorn RISC PD-CD 1.iso / music / _coconizer / coconizer / _player / readme / playernots < prev    next >
Encoding:
Text File  |  1992-09-29  |  3.9 KB  |  108 lines

  1. ============================================
  2. =  Informations on the Player Module Code  =
  3. ============================================ 
  4.  
  5.  
  6. The Player Routine:
  7. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  8.  
  9. A 50 Hz counter is the basic beat of Coconizer. Effects 00-06 are performed
  10. when the speed counter is higher zero. When it is zero then a possible note
  11. entry is interpreted, together with the note's linked command (07-0F, like
  12. Set Volume, or the effect flag setter commands).
  13. Compared to the old Coco player routine(s) the new play quality has improved
  14. a lot. The filler code now stops exactly at the end of a sample, former len-
  15. exceeding garbage bytes are not output anymore. Due to the way Amiga players
  16. work the Coco player now also plays instrument entries with no given note,
  17. this just repeats the last legal note with the given sample (and effect).
  18.  
  19.  
  20. View of a Sample:
  21. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  22.  
  23. SampleStart                            SampleEnd
  24.      |                                     |
  25.      [============X===================X====]
  26.                   |                   |
  27.                   |                   |
  28.               LoopStart            LoopEnd
  29.              (Repeat_At)     (Repeat_At+Rep_Len)
  30.  
  31.  
  32.  
  33. Head Workspace during Filling:
  34. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  35.  
  36.  V*32 !00 : Current Position (fixp) subtracted from Endaddress; 0=Silent
  37.  o    !04 : Pitch of Tone, 16bit fixpointed
  38.  i    !08 : End Address of Sample, either SampleEnd or LoopEnd
  39.  c    !12 : Repeat_At Startvalue (fixp), is then moved in <Pos>; or 0=Off
  40.  e    !16 : Volume of currently played Sample
  41.       !20 : Last Startposition (for new Tone without specified Sample)
  42.  
  43.       ?24 : Current Info Byte
  44.       ?25 : Current Effect Byte
  45.       ?26 : Status of Voice. 0=Music may play, 1=Music off until FX is over,
  46.       ?27 : Last legal tone (ie 02=C#-3)       2=Music off constantly
  47.       
  48.       ?28 : Value for Auto Volume up
  49.       ?29 : Value for Auto Volume down
  50.       ?30 : Value for Auto Pitch up
  51.       ?31 : Value for Auto Pitch down
  52.          
  53.  
  54. What's found in the Samplebay:
  55. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  56.  
  57. In the Samplefile on disc:
  58.  
  59.  S*32 !00 : Sample Address, Offset from Start of Track
  60.  a    !04 : Length in Bytes
  61.  m    !08 : Volume
  62.  p    !12 : Repeat At Offset
  63.  l    !16 : Repeat Length in Bytes
  64.  e    !20 : Name (10 chars) plus newline
  65.  
  66.  
  67. And this is written into the samplebay at initialising:
  68.  
  69.  S*32 !00 : StartPos
  70.       !04 : Endaddress of Sample
  71.       !08 : Repeat Position; or 0=Off
  72.       !12 : Volume
  73.  
  74.                       
  75.     with         Repeat off                        Repeat on
  76.                  ¯¯¯¯¯¯¯¯¯¯                        ¯¯¯¯¯¯¯¯¯
  77.     StartPos  =  Length <<16                       (RepAt+RepLen) <<16
  78.     Address   =  SampleStart+Length                SampleStart+RepAt+RepLen
  79.     Repeat    =  0 (so Pos is always resetted)     RepLen <<16
  80.     Pitch     =  16 bit fixpoint value
  81.  
  82.  
  83.  
  84. ==============================
  85. =  Information about Timing  =
  86. ==============================
  87.  
  88. The filler code has been written with great care and optimisation in mind.
  89. It does use different algorithms when an enabled cache is detected, in order
  90. to use the fastest method on both ARM2 (enrolled) and ARM3 (partly looped).
  91.  
  92. Timings have been calculated by comparing the system sound (1 voice, wave
  93. beep) with a playing Coconizer soundtrack. The results depend on several
  94. factors: Cache on or off; the speed of the main memory (DMA and interrupts
  95. are also faster then); the used video mode; and a quite small factor is the
  96. soundtrack itself (playing faster or slower). All this mean it can vary by
  97. several percents.
  98.  
  99. Approximate processor times taken by the player in mode 13:
  100.  
  101.                    12 MHz RAMs      12 MHz RAMs       8 MHz RAMs
  102.                      Cache on        Cache off           ARM2
  103.                    ¯¯¯¯¯¯¯¯¯¯¯      ¯¯¯¯¯¯¯¯¯¯¯       ¯¯¯¯¯¯¯¯¯¯
  104.   4 Voices :            9%              14%               22%
  105.   8 Voices :           16%              31%               55%
  106.  
  107.  
  108. Text edited by Epics.